/*            Copyright(c) 2006-2008 Dave Sexton           *
 * http://www.codeplex.com/DocProject                      *
 * http://www.codeplex.com/DocProject/Project/License.aspx *
 ***********************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace DaveSexton.DocProject.Engine
{
	public interface IBuildStep : IDisposable
	{
		IBuildEngine Engine { get; }

		bool RunInBackground { get; set; }

		bool ContinueOnError { get; set; }

		bool IncludeInPartialBuild { get; set; }

		string Name { get; }

		BuildContext CurrentContext { get; }

		void Execute(BuildContext context);

		/// <summary>
		/// When implemented by a derived class, cancels execution of a step running in the background (<see cref="RunInBackground" /> is <b>true</b>).
		/// </summary>
		void Cancel();
	}
}
